package cn.edu.cxcyzx.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.edu.cxcyzx.entity.StudentPOJO;
import cn.edu.cxcyzx.entity.Task;
import cn.edu.cxcyzx.entity.TaskPOJO;
import cn.edu.cxcyzx.entity.TaskProject;

public interface TaskDao {
	
	/**
	 * 查询某项目的所有已划分任务
	 * @param projectId
	 * @return
	 */
	public List<Task> getProTask(int projectId);
	/**
	 * 插入任务
	 * @param tasks
	 */
	public void insertTask(List<Task> tasks);
	/**
	 * 任务分配给学生
	 * @param taskId
	 * @param stuId
	 */
	public void updateTask(@Param("taskId")String taskId,@Param("stuName")String stuName,@Param("stuId")String stuId);
	
	public void insertOneTask(Task task) ;
	
	public Integer getNum_task();
	
	public Integer get_maxId();
	
	public Task getTaskBy_taskId(String taskId);
	
	/**
	 * 学生的项目-任务信息
	 * @param stuId
	 * @return
	 */
	public List<TaskProject> getTaskBy_stuId(String stuId);
	
	/**
	 * 查询学生未完任务数量
	 * @param stuId
	 * @return
	 */
	public int getTask_num(String stuId);
	/**
	 * 更新任务进度
	 * @param taskId
	 */
	public void update_process(String taskId);
	/**
	 * 更新任务状态
	 * @param taskId
	 * @param taskStatus
	 */
	public void update_taskStatus(@Param("taskId")String taskId,@Param("taskStatus")int taskStatus);
	/**
	 * 项目任务完成数量
	 * @param projectId
	 * @return
	 */
	public int getNum_taskFinish(int projectId);
	/**
	 * 项目的任务数量
	 * @param projectId
	 * @return
	 */
	public int getTaskNumBy_projectId(int projectId);
	/**
	 * 得到任务进度
	 * @param taskId
	 * @return
	 */
	public int getProcess(String taskId);
	/**
	 * 查寻成员信息
	 * @param projectId
	 * @return
	 */
	public List<StudentPOJO> getStudentPOJOs(String groupId);
	/**
	 * 查询所有任务信息
	 * @param leaderId
	 * @return
	 */
	public List<TaskPOJO> getAllTaskBy_leaderId(String leaderId);
	/**
	 * 删除任务
	 * @param taskId
	 */
	public void deleteTask(String taskId);
	/**
	 * 查询项目所有任务的进度
	 * @param projectId
	 * @return double[]
	 */
	public Integer[] getProgress(int projectId);
}
